The present invention relates to methods for managing storage of data in a composite non-volatile memory that is a composite of a slow memory device and a fast memory device. In a composite disk system, a large, slow, and inexpensive magnetic hard drive can be combined with a small, fast but expensive storage device, such as a solid state drive to form a logical volume. Techniques to manage data transfer between memory devices have to take into account the overhead that I/O operations on and between the devices can present, and manage that overhead in an efficient manner.
One element of I/O overhead in managing storage devices is the serializing of disk operations enforced by byte range locking algorithms, which preserve data integrity by requiring atomic operations on certain storage byte ranges. When one process has a lock on a range of addresses, other processes may not be able to access the locked address range. Accordingly, one process's byte-range locks can block a different process's I/O operation if the operations are to overlapping addresses, which can reduce system performance.